package com.lzx.adx.report.service.impl;

import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.lzs.adx.commmon.service.impl.CrudServiceImpl;

import com.lzx.adx.report.cache.ProductConfigLocalCache;
import com.lzx.adx.report.dao.ProductConfigDao;
import com.lzx.adx.report.dto.ProductConfigDTO;
import com.lzx.adx.report.entity.ProductConfigEntity;
import com.lzx.adx.report.service.ProductConfigService;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service;

import java.util.List;
import java.util.Map;

/**
 * 
 *
 * @author wangzhijun 825400558@qq.com
 * @since 1.0.0 2024-10-29
 */
@Service
public class ProductConfigServiceImpl extends CrudServiceImpl<ProductConfigDao, ProductConfigEntity, ProductConfigDTO> implements ProductConfigService {

    @Override
    public QueryWrapper<ProductConfigEntity> getWrapper(Map<String, Object> params){
        String id = (String)params.get("id");

        QueryWrapper<ProductConfigEntity> wrapper = new QueryWrapper<>();
        wrapper.eq(StringUtils.isNotBlank(id), "id", id);

        return wrapper;
    }


    @Override
    public ProductConfigDTO getDetail(String id) {

        ProductConfigDTO productConfigDTO=new ProductConfigDTO();
        ProductConfigEntity productConfigEntity = this.baseDao.selectById(id);
        BeanUtils.copyProperties(productConfigEntity,productConfigDTO);
        return  productConfigDTO;
    }

    @Override
    public void sysnCacheToDb() {
        List<ProductConfigEntity> productConfigEntities = this.baseDao.selectList(new QueryWrapper<>());
        for (ProductConfigEntity productConfigEntity : productConfigEntities) {
            ProductConfigDTO productConfigDTO=new ProductConfigDTO();
            BeanUtils.copyProperties(productConfigEntity,productConfigDTO);
            ProductConfigLocalCache.getInstance().put(productConfigEntity.getId(),productConfigDTO);
        }
    }
}